perm filename PLTPRT.FAI[TMP,LCS]1 blob sn#136259 filedate 1974-12-15 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	TITLE JUGLR
C00013 ENDMK
C⊗;
TITLE JUGLR
ENTRY JUGGLE,LOOP
;C********  JUGGLER  ********
;	SUBROUTINE JUGGLE
;	IMPLICIT INTEGER(A-Z)
;	REAL PWDS,RN
;	COMMON /DL/X22,SAVER,NAME /XRN/RN(4000)
;     COMMON/PTR/PWDS(250),ITEM,L,I,IX/DPY/ST(4000),WDS(250),MEDIT,IGO
EXTERNAL DL,XRN,PTR,DPY,FLOAT,IFIX
JUGGLE:	0
	SOS PTR+=250	;ITEM=ITEM-1
	HRR 2,DPY+=4250	;JX=RN(MEDIT)+3
;2←MEDIT IF POZ
	JSA 16,IFIX	;CC  WD CNT OF OLD ITEM
	CAI XRN-1(2)
	ADDI 0,3	;C  I-IX IS WD CNT OF NEW ITEM
;0←JX
	MOVE 4,PTR+=253	;JY=IX
;4←JY
	MOVE 5,PTR+=252	;Z=I-IX-JX
	SUB 5,4 	;C  SPACE CHANGE
	SUB 5,0
;5←Z
	JUMPL 5,L2751	;IF(Z)2751,172,751
	JUMPE 5,L172
	HRRE 10,2	;MEDIT+JX
	ADD 10,0		;JX
	MOVE 11,PTR+=252	;I-1
	SOJ 11,		;751	CALL LOOP(I-1,MEDIT+JX,-1,Z,0,RN)
	SUB 10,11 
	ADDI 11,XRN-1
	HRRM 5,.+2
	MOVE 7,(11)
	MOVEM 7,(11)
	SOJ 11,
	SOJG 10,.-3
	ADD 4,5		;JY=IX+Z
	JRST L172	;GO TO 172

L2751:	HRRE 10,2	;2751	CALL LOOP(MEDIT+JX+Z,IX+Z-1,1,0,-Z,RN)
	ADD 10,0
	MOVE 11,PTR+=253
	SUB 10,11
	ADD 11,5
	ADDI 11,XRN-1
	MOVN 12,5
	HRRM 12,.+1
	MOVE 7,(11)
	MOVEM 7,(11)
	AOJ 11,
	SOJGE 10,.-3
L172:	JSA 16,IFIX	;172	J=RN(JY)+2
	CAI XRN-1(4)
	ADDI 0,2
	MOVEM 0,J#
	MOVE 10,0	;CALL LOOP(0,J,1,MEDIT,JY,RN)
	HRRZI 11,XRN-1
	HRRM 4,.+2
	HRRM 2,.+2
	MOVE 7,(11)
	MOVEM 7,(11)
	AOJ 11,
	SOJGE 10,.-3
	MOVE 7,5	;I=IX+Z
	ADD 7,PTR+=253
	MOVEM 7,PTR+252
L1751:	MOVE 7,PTR+=250	;1751	X=ITEM+1
	AOJ 7,
	MOVE 12,DL	;JX=WDS(X22+1)-WDS(X22)
	MOVE 6,DPY+=4000(12)
	SUB 6,DPY+=3999(12)
	MOVE 0,DPY+=4000(7)	;J=WDS(X+1)-WDS(X)
	SUB 0,DPY+=3999(7)
	MOVE 3,0	;Y=J-JX
	SUB 3,6
	MOVE 6,DPY+=3999(7)	;JX=WDS(X)+Y+1
	ADD 6,3
	AOJ 6,
	JUMPL 3,L2851	;IF(Y)2851,182,282
	JUMPE 3,L182
	MOVE 10,DPY+=3999(12)	;282	CALL LOOP(WDS(X+1)+2,WDS(X22),-1,Y,0,ST)
	MOVE 11,DPY+=4000(7)
	ADDI 11,2
	SUB 10,11
	ADDI 11,DPY-1
	HRRM 3,.+2
	MOVE 13,(11)
	MOVEM 13,(11)
	SOJ 11,
	SOJGE 10,.-3
	JRST L182	;GO TO 182

L2851:	MOVE 10,DPY+=3999(7)	;2851	CALL LOOP(WDS(X22+1)+Y+1,WDS(X)+Y+1,1,0,-Y,ST)
	MOVE 11,DPY+=4000(12)
	SUB 10,11
	ADDI 11,DPY(3)
	MOVN 13,3
	HRRM 13,.+1
	MOVE 13,(11)
	MOVEM 13,(11)
	AOJ 11,
	SOJGE 10,.-3
	MOVE 6,DPY+=3999(7)	;JX=WDS(X)+1
	AOJ 6,
L182:	HRRZI 11,DPY	;182	CALL LOOP(1,J,1,WDS(X22)+1,JX,ST)
	HRRM 6,.+4
	HRR 13,DPY+=3999(12)
	AOJ 13,
	HRRM 13,.+2
	MOVE 13,(11)
	MOVEM 13,(11)
	AOJ 11,
	SOJG 0,.-3
	JSA 16,FLOAT
	CAI 5
	HRRZI 11,1(12)	;DO 183 K=X22+1,X
	FADRM 0,PTR-1(11)	;PWDS(K)=PWDS(K)+Z
	ADDM 3,DPY+=3999(11)	;183	WDS(K)=WDS(K)+Y
	AOJ 11,
	CAMG 11,7
	JRST .-4
	MOVE 13,DPY+=3999(7)	;ST(2)=WDS(X)
	MOVEM 13,DPY+1
	SETZM DL	;X22=0
	JRA 16,1(16)	;END

;	SUBROUTINE LOOP(I,J,K,L,M,N)
;	DIMENSION N(1)
;	DO 1 NN=I,J,K
;1	N(NN+L)=N(NN+M)
;	END

LOOP:	0
	MOVE 4,@1(16)
	MOVE 3,@0(16)
	SUB 4,3
	HRRZ 2,5(16)
	SOJ 2,
	ADD 2,3
	JUMPLE 4,MIMI
	HRR 5,2
	ADD 5,@3(16)
	ADD 4,2
	ADD 2,@4(16)
	HRL 5,2
	BLT 5,(4)
	JRA 16,6(16)
MIMI:	HRR 5,@4(16)
	HRRM 5,XN
	HRR 5,@3(16)
	HRRM 5,XN+1
XN:	MOVE 6,(2)
	MOVEM 6,(2)
	SOJ 2,
	AOJL 4,XN
	JRA 16,6(16)
	END